package com.fenqile.pop.trade.param;

import java.time.LocalDateTime;

import com.fenqile.pop.BusinessParameter;
import com.fenqile.pop.enums.OrderStatus;
import com.fenqile.pop.trade.TradeInfo;
import com.fenqile.pop.trade.result.TradesListGetResult;
import com.fenqile.pop.utility.FieldOpt;

/**
 * 批量获取订单概要信息 {@value #API_METHOD}
 * 
 * @see TradesListResult
 * 
 * @author Coby [cobylin@live.com] 2017
 */
public class TradesListGetParameter extends BusinessParameter<TradesListGetResult> {
	public static final String API_METHOD = "fenqile.trades.list.get";
	
	/**
	 * 起始时间，时间跨度最大 三个月 
	 * 必须
	 */
	public LocalDateTime begin_time;
	
	/**
	 * 结束时间，时间跨度最大 三个月 
	 * 必须
	 */
	public LocalDateTime end_time;
	
	/**
	 * 订单状态，选择"待发货"状态  begin_time 和 end_time 可以不填
	 */
	public OrderStatus status;
	
	/**
	 * 当前页码，默认 为1
	 */
	public Integer page;
	
	/**
	 * 每页条数，默认 40，最大100
	 */
	public Integer page_size;
	
	/**
	 * 结果集返回字 段列表，多个字段以半角逗号分隔，
	 * 可选值为响应说明中的所有一级参数
	 */
	public FieldOpt<TradeInfo> fields = new FieldOpt<>(TradeInfo.class);
	
	/**
	 * 订单生成时间排序方式。默认升序(1 为降序，其它值为升序)
	 */
	public Integer sort_type;
	
	/**
	 * 筛选时间类型。
 	 * 默认创建时间，筛选(1 为创建时间，其它值为修改时间)
	 */
	public Integer date_type;
	
	@Override
	public String getApiMethod() {
		return API_METHOD;
	}

}
